package com.sfx.算法专题.位运算;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;

class Solution {
    private char randomChar() {
        Random random = new Random();
        return (char) (random.nextInt(26) + 'a');
    }

    public String modifyString(String ss) {
        char[] s = ss.toCharArray();
        int i = 0;
        // 1. 找到 ? 的位置
        for (i = 0; i < s.length; ++i) {
            if (s[i] == '?') {
                break;
            }
        }
        // 2. 随机一个字母不能和? 前面的 和 后面的 相同
        HashSet<Character> set = new HashSet<>();
        if (i - 1 >= 0) {
            set.add(s[i - 1]);
        }
        if (i + 1 < s.length) {
            set.add(s[i + 1]);
        }
        char random = randomChar();
        while(set.contains(random)) {
            random = randomChar();
        }
        s[i] = random;
        return s.toString();
    }
}